Controller notification system

ABSTRACT

A method of associating a controller to a console comprises, at the controller, establishing a connection with the console such that the controller is assigned to one of a plurality of different ports of the console over which different controllers may separately communicate with the console. A visual indication is then provided on the controller to indicate to the user of the controller which one of the plurality of different ports of the console has been assigned to the controller and over which the controller communicates with the console.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to and is a continuation of U.S. patentapplication Ser. No. 13/758,295, filed on Feb. 4, 2013, which is acontinuation of U.S. patent application Ser. No. 11/034,641 filed onJan. 12, 2005, now U.S. Pat. No. 8,369,795, the contents of which areincorporated herein by reference in its entirety.

COPYRIGHT NOTICE/PERMISSION

A portion of the disclosure of this patent document contains material,which is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent files or records, but otherwise reserves all copyrightrights whatsoever. The following notice applies to the software and dataas described below and in the drawings hereto: Copyright© 2004,Microsoft Corporation, All Rights Reserved.

FIELD OF THE INVENTION

This invention generally relates to the field of gaming and multimediadevices. In particular, the present invention is directed to a systemand method of providing notifications at a console or controller.

BACKGROUND OF THE INVENTION

Wireless controllers provide players with freedom of movement bywirelessly connecting the controller to the gaming console. Typically,the controllers provide features such as vibration feedback,mini-joysticks, D-pad, pressure-sensitive buttons, etc. that playerswould find on wired controllers. In addition, the systems that connectwireless controllers to gaming consoles often allow multiple players toplay at once on the console.

Conventional controllers and gaming consoles, however, fail to provide asystem and method of providing notifications to players. For example, itis difficult for players to know if their wireless controller hasconnected to the console as no indication is provided of a successfulconnection. It is also difficult for users of wireless controllers toknow what player number or port number they are connected to, i.e. theprior art has not embodied a virtual analog to the cable being pluggedinto a physical port. This problem also exists where there may be amixture of wired and wireless controllers which must be mapped tovirtual ports.

Also, messages need to be conveyed to a player. Conventional wirelesscontrollers cannot notify the player of such messages, nor identify theappropriate player of a message. Thus, conventional consoles andcontrollers have failed to provide a method for conveying notificationsto players about events that may be of interest. The present inventionprovides such a solution.

SUMMARY OF THE INVENTION

The present invention is direct to systems and methods for providingnotifications to players of a gaming console of messages and systemnotifications. Also provided are systems and methods of associating acontroller to a console. The controller and the gaming console may eachinclude a four quadrant LED indicator, where each quadrant of the ringmay be illuminated using an LED to indicate the messages andnotifications. The quadrants may be illuminated in one of three colorsand in patterns to indicate different types of notifications. Onscreendisplays may be used to supplement the LED indicators to conveyinformation to users.

The present invention also is directed to a method of binding anddiscovering a controller. The controller may be bound to a gamingconsole by pressing a bind button on the controller and gaming console.After a controller is bound to a console, the controller may bediscovered by the gaming console where it is assigned a virtual port andenabled for game play.

Additional features and advantages of the invention will be madeapparent from the following detailed description of illustrativeembodiments that proceeds with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing summary, as well as the following detailed description ofpreferred embodiments, is better understood when read in conjunctionwith the appended drawings. For the purpose of illustrating theinvention, there is shown in the drawings exemplary constructions of theinvention; however, the invention is not limited to the specific methodsand instrumentalities disclosed. In the drawings:

FIG. 1 is a block diagram showing a gaming console in which aspects ofthe present invention may be implemented;

FIG. 2 illustrates a controller and LED indicators;

FIGS. 3 and 4 illustrate one or more controllers being bound anddiscovered by the console; and

FIGS. 5-12 illustrate exemplary notifications and onscreen displays thatare conveyed to players.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

FIG. 1 illustrates the functional components of a multimedia/gamingconsole 100 in which certain aspects of the present invention may beimplemented. The multimedia console 100 has a central processing unit(CPU) 101 having a level 1 cache 102, a level 2 cache 104, and a flashROM (Read Only Memory) 106. The level 1 cache 102 and a level 2 cache104 temporarily store data and hence reduce the number of memory accesscycles, thereby improving processing speed and throughput. The CPU 101may be provided having more than one core, and thus, additional level 1and level 2 caches 102 and 104. The flash ROM 106 may store executablecode that is loaded during an initial phase of a boot process when themultimedia console 100 is powered ON.

A graphics processing unit (GPU) 108 and a video encoder/video codec(coder/decoder) 114 form a video processing pipeline for high speed andhigh resolution graphics processing. Data is carried from the graphicsprocessing unit 108 to the video encoder/video codec 114 via a bus. Thevideo processing pipeline outputs data to an AN (audio/video) port 140for transmission to a television or other display. A memory controller110 is connected to the GPU 108 to facilitate processor access tovarious types of memory 112, such as, but not limited to, a RAM (RandomAccess Memory).

The multimedia console 100 includes an I/O controller 120, a systemmanagement controller 122, an audio processing unit 123, a networkinterface controller 124, a first USB host controller 126, a second USBcontroller 128 and a front panel I/O subassembly 130 that are preferablyimplemented on a module 118. The USB controllers 126 and 128 serve ashosts for peripheral controllers 142(1)-142(2), a wireless adapter 148,and an external memory device 146 (e.g., flash memory, external CD/DVDROM drive, removable media, etc.). The network interface 124 and/orwireless adapter 148 provide access to a network (e.g., the Internet,home network, etc.) and may be any of a wide variety of various wired orwireless adapter components including an Ethernet card, a modem, aBluetooth module, a cable modem, and the like.

System memory 143 is provided to store application data that is loadedduring the boot process. A media drive 144 is provided and may comprisea DVD/CD drive, hard drive, or other removable media drive, etc. Themedia drive 144 may be internal or external to the multimedia console100. Application data may be accessed via the media drive 144 forexecution, playback, etc. by the multimedia console 100. The media drive144 is connected to the I/O controller 120 via a bus, such as a SerialATA bus or other high speed connection (e.g., IEEE 1394).

The system management controller 122 provides a variety of servicefunctions related to assuring availability of the multimedia console100. The audio processing unit 123 and an audio codec 132 form acorresponding audio processing pipeline with high fidelity and stereoprocessing. Audio data is carried between the audio processing unit 123and the audio codec 132 via a communication link. The audio processingpipeline outputs data to the A/V port 140 for reproduction by anexternal audio player or device having audio capabilities.

The front panel I/O subassembly 130 supports the functionality of thepower button 150 and the eject button 152, as well as any LEDs (lightemitting diodes) or other indicators exposed on the outer surface of themultimedia console 100. A system power supply module 136 provides powerto the components of the multimedia console 100. A fan 138 cools thecircuitry within the multimedia console 100.

The CPU 101, GPU 108, memory controller 110, and various othercomponents within the multimedia console 100 are interconnected via oneor more buses, including serial and parallel buses, a memory bus, aperipheral bus, and a processor or local bus using any of a variety ofbus architectures. By way of example, such architectures can include aPeripheral Component Interconnects (PCI) bus, PCI-Express bus, etc.

When the multimedia console 100 is powered ON, application data may beloaded from the system memory 143 into memory 112 and/or caches 102, 104and executed on the CPU 101. The application may present a graphicaluser interface that provides a consistent user experience whennavigating to different media types available on the multimedia console100. In operation, applications and/or other media contained within themedia drive 144 may be launched or played from the media drive 144 toprovide additional functionalities to the multimedia console 100.

The multimedia console 100 may be operated as a standalone system bysimply connecting the system to a television or other display. In thisstandalone mode, the multimedia console 100 allows one or more users tointeract with the system, watch movies, or listen to music. However,with the integration of broadband connectivity made available throughthe network interface 124 or the wireless adapter 148, the multimediaconsole 100 may further be operated as a participant in a larger networkcommunity.

When the multimedia console 100 is powered ON, a set amount of hardwareresources are reserved for system use by the multimedia consoleoperating system. These resources may include a reservation of memory(e.g., 16 MB), CPU and GPU cycles (e.g., 5%), networking bandwidth(e.g., 8 kbs), etc. Because these resources are reserved at system boottime, the reserved resources do not exist from the application's view.

In particular, the memory reservation preferably is large enough tocontain the launch kernel, concurrent system applications and drivers.The CPU reservation is preferably constant such that if the reserved CPUusage is not used by the system applications, an idle thread willconsume any unused cycles.

With regard to the GPU reservation, lightweight messages generated bythe system applications (e.g., popups) are displayed by using a GPUinterrupt to schedule code to render popup into an overlay. The amountof memory required for an overlay depends on the overlay area size andthe overlay preferably scales with screen resolution. Where a full userinterface is used by the concurrent system application, it is preferableto use a resolution independent of application resolution. A scaler maybe used to set this resolution such that the need to change frequencyand cause a TV resynch is eliminated.

After the multimedia console 100 boots and system resources arereserved, concurrent system applications execute to provide systemfunctionalities. The system functionalities are encapsulated in a set ofsystem applications that execute within the reserved system resourcesdescribed above. The operating system kernel identifies threads that aresystem application threads versus gaming application threads. The systemapplications are preferably scheduled to run on the CPU 101 atpredetermined times and intervals in order to provide a consistentsystem resource view to the application. The scheduling is to minimizecache disruption for the gaming application running on the console.

When a concurrent system application requires audio, audio processing isscheduled asynchronously to the gaming application due to timesensitivity. A multimedia console application manager (described below)controls the gaming application audio level (e.g., mute, attenuate) whensystem applications are active.

Input devices (e.g., controllers 142(1) and 142(2)) are shared by gamingapplications and system applications. The input devices are not reservedresources, but are to be switched between system applications and thegaming application such that each will have a focus of the device. Theapplication manager preferably controls the switching of input stream,without knowledge the gaming application's knowledge and a drivermaintains state information regarding focus switches.

The present invention is directed to a solution for conveying virtualcontroller ports (e.g., wireless controllers) as distinct from the twophysical controllers 142(1) and 142(2). The present invention alsoaddresses the need to inform players of messages and systemnotifications. To accomplish these goals and others, a wirelesscontroller is provided that includes an LED indicator having quadrantsthat indicate a particular wireless controller, and a notificationsystem that interacts with games running on the console 100.

Referring to FIG. 2, there is illustrated an exemplary wirelesscontroller 154 having a four quadrant LED indicator 156 (and enlargedview) and console 100 having a four quadrant indicator 158. Thecontroller 154 also includes vibration feedback, mini-joysticks,pressure-sensitive buttons, etc. A game is shown on the screen 160. Theconsole indicator 158 is shown surrounding a power button, however,other configurations may be implemented. Each quadrant of the ring maybe illuminated by an LED, which may be either a single color orbi-colored to illuminate in plural colors. As will be described below,the quadrants may be illuminated in patterns indicating thenotifications, system status, binding and discovery.

To support an environment where multiple consoles 100 and wirelesscontrollers 154 may coexist, each controller is logically “bound” to asingle console 100 so that a link is established with only that console100. A controller 154 cannot be bound to more than one console 100 at atime. Binding is the process by which a console 100 transmitsinformation to a controller 154 that will enable that controller toestablish a link with the console 100. Once “bound” to a console 100,the controller 154 attempts to establish a link with the console 100 towhich it is bound whenever the controller 154 is turned on.

It is preferable that binding information is retained only in thecontroller. Binding is one to one with respect to the controller 154,but it is one to many with respect to the console 100. Binding, thus,persists on the controller 154 across battery discharge/charge cycles,until a new binding relationship is established. Establishing a bindingrelationship is attempted when a BIND button on the console and a BINDbutton on a wireless controller 154 are pressed within a predeterminedperiod of time of each other. Successfully establishing a bindingrelationship is dependent on successfully establishing a radiocommunication link and executing a mutual verification algorithm.

The console is preferably powered up before pressing its BIND button. Ifa user initiates binding on a controller 154 that is currently connectedto a console 100, the controller 154 drops the connection to the console100 prior to attempting the binding process. As the binding processoperates, a status notification screen may display binding and discoveryprocess (e.g., binding . . . bound . . . discovered). Binding is a oneto one event. In other words, pressing the binding button on the console100 will bind one controller 154 at a time. To bind a second controller154, the BIND button on the console 100 is pressed a second time. Ifbinding is not successful within a predetermined time, the console 100or controller 154 will automatically time out and return to a previousstate such that the previous binding relationship is not lost.

There are four virtual controller ports on the console 100, referred toherein as “Vports.” The Vports represent the active game controllersconnected to the console 100, either wired or wirelessly. The numberedVports are automatically assigned to controllers in the order they areconnected to the console 100. Each Vport is represented by a quadrant ofthe LED indicator 156 and the console indicator 158. “Discovery” is theprocess during which a wired or wireless game device is recognized bythe console 100, assigned a Vport, and made available for game play.

Thus, the acts of “binding” and “discovery” are preferably two differentacts. The act of binding is initiated by pressing the BIND buttons onthe controller and console. Once bound, the controller will begin thediscovery process, and if successful, will be assigned the firstavailable Vport, which in this case is Vport 1 as described. If one tothree controllers had previously been bound and discovered, then thenext controller discovered would be assigned Vport 2, 3, or 4respectively. If, four controllers were already discovered, then thebinding process could still be performed, however no Vport would beavailable to assign, so the controller would not be assigned a Vport,however it would still be bound to the console and available to bediscovered if one of the other four controllers were either turned offor bound to a new console.

Referring to FIGS. 3 and 4, there is a visualization of the binding anddiscovery processes and how the LED indicator 156 and the consoleindicator 158 visually convey the processes to players. As shown in FIG.3, the controller has been powered on and the BIND button on the console100 and the controller have been pressed. After the binding process hascompleted, the discovery process takes place. Because this is the firstcontroller to be discovered by the console 100, it is associated withVport 1 and the top left quadrant of the indicators 156 and 158 willilluminate to signal the connection. As shown in FIG. 4, if more thanone controller is discovered by the console 100, the other quadrants ofindicator 158 are illuminated in succession. Thus, if two controllersare connected, two quadrants of the indicator 158 will illuminate, andso on up to four controllers and four quadrants. It is noted that whileadditional quadrants are successively illuminated on the console, only asingle quadrant is illuminated on any single controller at a time.

The position of the quadrant preferably corresponds to the Vport asfollows:

-   -   1, top left quadrant    -   2, top right quadrant    -   3, lower left quadrant    -   4, lower right quadrant    -   In addition, as shown in FIG. 4, where multiple players are        playing, the position of the players on the screen correspond to        the quadrant assigned to their particular controller.

Vports are preferably assigned in ascending order (1 through 4),according to the following rules:

-   -   If the system is powered up by a controller, that controller        (wired or wireless) is assigned Vport 1.    -   Wired controllers plugged into the console are automatically        assigned the next available Vport According to the following        order:    -   Controllers connected via hub to USB Port A.    -   Controller directly plugged into USB Port A (e.g., controller        142(1)).    -   Controllers connected via hub to USB Port B.    -   Controller directly plugged into USB Port B (e.g., controller        142(2)).    -   Controllers connected via hub to USB Port C    -   Controller directly plugged into USB Port C

Vports are vacated as controllers are unplugged or powered off.Logically, a wireless controller that is powered off is treated the sameas a wired controller that is unplugged from the console 100. Oncepowered-up, the console 100 will assign additional wired and wirelesscontrollers to available Vports in the order in which they are connectedor powered up. During game play, the game will be notified when acontroller is unplugged. In the event that the controller that isunplugged is currently being used in the game, the game will pause anddisplay a disconnect message (see, FIG. 8). The game also notifies theconsole 100 that the vacated Vport is the next to be repopulated shoulda controller be reconnected. Should subsequent disconnects occur, theconsole notifies the game and the game reports back with the next Vportto populate. The console maintains in a Last-In-First-Out stack for thenext Vport assignment requested by the game.

Thus, as controllers are reconnected, they are assigned to Vportsaccording to the following rules:

-   -   If a Next Vport stack has a value in it, the controller is        assigned to the specified Vport and the Vport is popped off the        stack.    -   If the Next Vport stack is empty, the controller is assigned to        the lowest numbered vacant Vport.    -   If no there are no vacant Vports, then the controller is not        assigned a Vport. If the controller is wireless, it displays the        failure to connect display and is powered down. If the        controller is wired, no quadrant is illuminated on the        controller.

A battery charging cable may be used to attach a wireless controller 154to a console 100 in the event that a wireless connection is not possibleor when battery power in not available. In this condition, the wirelesscontroller 154 operates like a wired controller and the console 100provides the power to operate the controller 154. However, if thecontroller 154 is plugged into a battery charger, not the console 100,it will continue to operate as a wireless controller 154. If thecontroller 154 is powered off while charging, the controller 154 willrelease its Vport.

The wireless controller may attempt to maximize battery life throughpower management. In a low power state, the controller 154 decreases itscommunication rate with the console 154. The assigned Vport assignmentis maintained in this state. However, if the controller 154 is not usedfor a predetermined period of time after entering the low power state,it releases the Vport and powers off.

The controller 154 may also provide notifications to a player via theLED indicator 156 and LEDs, which can illuminate in a selected color(e.g., green, red and orange). The quadrants can be illuminated inpatterns indicating notifications, system status, binding, discovery,and system errors. For example, the LED may indicate that the controlleris connected to a console, an alert state, and messages. Further,onscreen notifications may be presented in conjunction with the LEDsignals. Exemplary onscreen notifications may include game invitations,low battery warnings, system errors, etc.

An exemplary set of notifications and warnings are shown in FIG. 2. Toconvey the notifications and warnings, the LEDs preferably operate inthree basic patterns: cycle, flash and on. For example, in FIG. 5, theindicator 158 may illuminate the LEDs such that they cycle to indicatethat the BIND button on the console 100 has been pressed. Similarly, inFIG. 6, the indicator 156 may illuminate the LEDs such that they cycleto indicate that the BIND button on the controller 154 has been pressed.FIG. 7 shows that all LEDs may be flashed on both the indicators 156 and158 to show discovery of the controller 154.

As noted above, messages and warnings may be presented in a UI. FIG. 8shows a warning that a controller has been disconnected from the console100 and it should be reconnected. A basic controller status screen mayalso be presented the displays the signal strength and percentage ofbattery power of a wireless controller and also provides access to amanual Sleep button.

Referring to FIGS. 9-10, a notification may be provided via a smallonscreen panel 162 which notifies the player that they have a message,system message or system problem (e.g., low battery, wireless signalloss). The condition may be indicated on the indicators 156 and 158 byilluminating the quadrant to which the controller 154 is bound and towhich the message is intended. FIG. 11 illustrates a message in thepanel 162 conveying that another player would like to chat. FIG. 12illustrates onscreen messaging when multiple players and playing withcontrollers bound to the console.

Those of ordinary skill in the art will now understand that any messageor notification may be conveyed to the user via the LED indicators andonscreen notifications. The messages or notifications may be presentedvia numerous combinations of colors, lighting patterns and UI messagesand the examples provided herein are neither exhaustive nor limiting ofthe present invention. In addition, notifications could also beindicated using an audible sound or vibration in the controller.

In accordance with a feature of the invention, the console 100 may beoperated either in a horizontal or vertical orientation. Agravity-sensing switch is used in the console 100 to detect theorientation and adjusts the display presentation such that the spatialrelationship between Vport number and the display are maintained asindicated above.

The LED notification system of the present invention is designed toprovide users with a simple, consistent way in which to add and removecontrollers from the console, while conveying port assignments,messages, notifications and system errors. While the present inventionhas been described in connection with the preferred embodiments of thevarious Figs., it is to be understood that other similar embodiments maybe used or modifications and additions may be made to the describedembodiment for performing the same function of the present inventionwithout deviating therefrom.

What is claimed:
 1. A method of providing notifications in a gamingsystem, comprising: providing a visual indicator on a gaming device;providing an onscreen notification to a display separate from the gamingdevice; and providing a message to a user via a combination of saidvisual indicator and said onscreen notifications.
 2. The method of claim1, further comprising presenting the onscreen notification subsequent topresenting a predetermined sequence displayed by the visual indicator.3. The method of claim 1, further comprising providing a notificationthat said gaming device has been bound to the gaming system.
 4. Themethod of claim 3, further comprising providing a notification that thegaming device has been discovered by the gaming system.
 5. The method ofclaim 1, further comprising providing a vibration controller, whereinthe message to a user are provided by a combination of the visualindicator, onscreen notification, and vibration controller.
 6. Themethod of claim 1, wherein the onscreen notification includes one of agame invitation, a warning, or an error.
 7. The method of claim 1,wherein the visual indicator indicates one of a binding, a discovery, astatus, an error, or a notification.
 8. The method of claim 1, whereinthe visual indicator operates in a pattern comprising flash, cycle, oron.
 9. A system for providing notifications in a gaming system,comprising: a visual indicator on a gaming controller operated by auser; a gaming console configured for sending an onscreen notificationto a display, wherein the display is separate from the gaming console; amessage to a user, wherein the message is provided by a combination ofthe visual indicator and onscreen notification.
 10. The system of claim9 further comprising a vibration component on the gaming controlleroperated by the user, wherein the message to a user is provided by acombination of the visual indicator, onscreen notification, andvibration controller.
 11. The system of claim 9, wherein the visualindicator indicates one of a binding, a discovery, a status, an error,or a notification.
 12. The system of claim 9, wherein the visualindicator operates in a pattern comprising flash, cycle or on.
 13. Thesystem of claim 9, wherein the onscreen notification includes one of agame invitation, a warning, or an error.